home *** CD-ROM | disk | FTP | other *** search
- /*
- * func_arg.c
- * Jerzy Tomasik, 20-Jul-1991
- * Stack usage during function calls
- * in a C program
- */
-
- #include <stdlib.h>
- #include <stdio.h>
-
- struct big_struct
- {
- char array[1024];
- };
-
- /* A copy of big_struct is passed to this function
- * on the stack, 1024 bytes of stack space are
- * used to store the copy. The function does not
- * have access to the original structure
- */
- void by_value(struct big_struct big, int dummy)
- {
- }
-
- /* An address of big_struct is passed to this function.
- * This uses only 2 bytes of stack space (under small
- * memory model), but any changes to the structure
- * will be reflected in the original. This is NOT
- * a copy!
- */
- void by_address(struct big_struct *big, int dummy)
- {
- }
-
-
- int main(void)
- {
- struct big_struct big;
- int dummy;
-
- by_value(big, dummy);
-
- by_address(&big, dummy);
-
- return(0);
- }
-
-